package arraylist;

import java.util.ArrayList;
import java.util.Iterator;

//访问ArrayList的三种方式
public class Test10 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);

        //通过下标的方式来遍历
        for(int i = 0;i < list.size();i++){
            //list[i]这样的写法时不行的
            System.out.println(list.get(i));
        }

        //通过foreach遍历
        //num会被依次赋值为list中的每个元素
        //这里的num只能用来"读",不能用来"写
        for(Integer num : list){
            System.out.println(num);
            num = 10;
            //这里就算更改num的值,也不会对ArrayList产生影响,因为num是一个临时变量
        }

        //通过迭代器来访问
        Iterator<Integer> iterator = list.iterator();
        //迭代器是泛型类,<>中所填的与集合类泛型参数一样
        //迭代器对象,不是手动new出来的,而是通过集合类获取到的(迭代器认为是集合类内部内置的对象)
        while(iterator.hasNext()){
            //通过next来获取到list中的每个元素
            //通过hasnext来判定是否遍历结束
            System.out.println(iterator.next());
        }
    }
}
